package com.wicket.okrapp.dal.po.mbg;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.wicket.okrapp.common.annotations.OrderFlag;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 主表：实例类型（1-目标，2-目标分类，3-指标，4-指标模板，5-目标周期，6-目标周期阶段，7-目标周期宿主评价权重，8-任务）110-实际值结果120-实际值过程增量130-实际值较上次百分比410-单次评价得分420-中期得分430-KR得分510-实时得分610-实际值得分
 *
 * @author xxx
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("oms_standard_data_result")
public class OmsStandardDataResult extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 数据结果ID:
     */
    @TableId(value = "data_result_id", type = IdType.UUID)
    @NotNull(message = "dataResultId不能为空")
    private String dataResultId;

    /**
     * 数据值结果:
     */
    @TableField(value = "data_result")
    @NotNull(message = "数据值结果不能为空")
    @ApiModelProperty("数据值结果")
    private Double dataResult;

    /**
     * 结果产生类型 :
     */
    @TableField(value = "result_type")
    @NotNull(message = "结果产生类型 不能为空")
    @ApiModelProperty("结果产生类型 ")
    private String resultType;

    /**
     * 上一数据结果ID:
     */
    @TableField(value = "parent_data_result_id ")
    @ApiModelProperty("parentDataResultId")
    private String parentDataResultId;

    /**
     * 上一数据值结果:
     */
    @TableField(value = "parent_data_result")
    @ApiModelProperty("上一数据值结果")
    private Double parentDataResult;

    /**
     * 冗余单位:
     */
    @TableField(value = "unit")
    @ApiModelProperty("冗余单位")
    private String unit;

    /**
     * 周期ID:
     */
    @TableField(value = "period_id")
    @NotNull(message = "周期ID不能为空")
    @ApiModelProperty("周期ID")
    private String periodId;

    /**
     * 周期类型实例标识:
     */
    @TableField(value = "cycle_type_instance_code")
    @ApiModelProperty("周期类型实例标识")
    private String cycleTypeInstanceCode;

    /**
     * 周期类型标识:
     */
    @TableField(value = "cycle_type_code")
    @NotNull(message = "周期类型标识不能为空")
    @ApiModelProperty("周期类型标识")
    private String cycleTypeCode;

    /**
     * 数据类型编码:
     */
    @TableField(value = "data_type")
    @NotNull(message = "数据类型编码不能为空")
    @ApiModelProperty("数据类型编码")
    private String dataType;

    /**
     * 归属内容表类型编码:
     */
    @TableField(value = "table_type_code")
    @NotNull(message = "归属内容表类型编码不能为空")
    @ApiModelProperty("归属内容表类型编码")
    private String tableTypeCode;

    /**
     * 归属内容表主键ID:
     */
    @TableField(value = "entity_id")
    @NotNull(message = "归属内容表主键ID不能为空")
    @ApiModelProperty("归属内容表主键ID")
    private String entityId;

    /**
     * 来自内容表类型编码:
     */
    @TableField(value = "from_content_table_type_code")
    @ApiModelProperty("来自内容表类型编码")
    private String fromContentTableTypeCode;

    /**
     * 来自内容表主键ID:
     */
    @TableField(value = "from_content_entity_id")
    @ApiModelProperty("来自内容表主键ID")
    private String fromContentEntityId;

    /**
     * 责任人对象ID:
     */
    @TableField(value = "person_liable_obj_id")
    @NotNull(message = "责任人对象ID不能为空")
    @ApiModelProperty("责任人对象ID")
    private String personLiableObjId;

    /**
     * 责任人业务角色对象ID:
     */
    @TableField(value = "biz_role_obj_id")
    @NotNull(message = "责任人业务角色对象ID不能为空")
    @ApiModelProperty("责任人业务角色对象ID")
    private String bizRoleObjId;

    /**
     * 责任人业务角色对象名称:
     */
    @TableField(value = "biz_role_obj_name")
    @NotNull(message = "责任人业务角色对象名称不能为空")
    @ApiModelProperty("责任人业务角色对象名称")
    private String bizRoleObjName;

    /**
     * 主体生命周期:
     */
    @TableField(value = "subject_life_cycle")
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 责任人身份类型编码:
     */
    @TableField(value = "person_liable_type_code")
    @NotNull(message = "责任人身份类型编码不能为空")
    @ApiModelProperty("责任人身份类型编码")
    private String personLiableTypeCode;

    /**
     * 是否存档:
     */
    @TableField(value = "is_archive")
    @NotNull(message = "是否存档不能为空")
    @ApiModelProperty("是否存档")
    private String isArchive;

    /**
     * 操作人就职记录ID:
     */
    @TableField(value = "operation_induction_id")
    @NotNull(message = "操作人就职记录ID不能为空")
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 创建人就职记录ID:
     */
    @TableField(value = "create_induction_id")
    @NotNull(message = "创建人就职记录ID不能为空")
    @ApiModelProperty("创建人就职记录ID")
    private String createInductionId;

    /**
     * 发布人就职记录ID:
     */
    @TableField(value = "release_induction_id")
    @ApiModelProperty("发布人就职记录ID")
    private String releaseInductionId;

    /**
     * 存档人就职记录ID:
     */
    @TableField(value = "archive_induction_id")
    @ApiModelProperty("archiveInductionId")
    private String archiveInductionId;

    /**
     * 操作时间:
     */
    @TableField(value = "operate_time")
    @NotNull(message = "操作时间不能为空")
    @ApiModelProperty("操作时间")
    @OrderFlag(orderType = "desc")
    private Date operateTime;

    /**
     * 创建时间:
     */
    @TableField(value = "create_time")
    @NotNull(message = "创建时间不能为空")
    @ApiModelProperty("创建时间")
    @OrderFlag(orderType = "desc")
    private Date createTime;

    /**
     * 发布时间:
     */
    @TableField(value = "release_time")
    @ApiModelProperty("发布时间")
    private Date releaseTime;

    /**
     * 存档时间:
     */
    @TableField(value = "archive_time")
    @ApiModelProperty("archiveTime")
    private Date archiveTime;

    /**
     * 是否作废:
     */
    @TableField(value = "is_valid")
    @NotNull(message = "是否作废不能为空")
    @ApiModelProperty("是否作废")
    private String isValid;

    /**
     * 创建于空间ID:
     */
    @TableField(value = "space_id")
    @NotNull(message = "创建于空间ID不能为空")
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

    /**
     * 创建于联盟应用ID:
     */
    @TableField(value = "app_id")
    @NotNull(message = "创建于联盟应用ID不能为空")
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;
}
